home *** CD-ROM | disk | FTP | other *** search
- ----------1000-------------------------------
- INT 10 - VIDEO - SET VIDEO MODE
- AH = 00h
- AL = mode (see below)
- Return: AL = video mode flag (Phoenix BIOS)
- 20h mode > 7
- 30h modes <= 7 except mode 6
- 3Fh mode 6
- AL = CRT controller mode byte (Phoenix 386 BIOS v1.10)
- Notes: IBM standard modes do not clear the screen if the high bit of AL is set
- (EGA or higher only)
- SeeAlso: AX=0070h,AX=007Eh,AX=10F0h,AX=6F05h,AH=FFh"GO32",INT 5F/AH=00h
-
- Values for video mode:
- text/ text pixel pixel colors display scrn system
- grph resol box resoltn pages addr
- 00h = T 40x25 8x14 16gray 8 B800 EGA
- = T 40x25 8x16 16 8 B800 MCGA
- = T 40x25 9x16 16 8 B800 VGA
- 01h = T 40x25 8x14 16 8 B800 EGA
- = T 40x25 8x16 16 8 B800 MCGA
- = T 40x25 9x16 16 8 B800 VGA
- 02h = T 80x25 8x14 16gray 4 B800 EGA
- = T 80x25 8x16 16 4 B800 MCGA
- = T 80x25 9x16 16 4 B800 VGA
- 03h = T 80x25 8x14 16 4 B800 EGA
- = T 80x25 8x16 16 4 B800 MCGA
- = T 80x25 9x16 16 4 B800 VGA
- 04h = G 40x25 8x8 320x200 4 B800 CGA,PCjr,EGA,MCGA,VGA
- 05h = G 40x25 8x8 320x200 4gray B800 CGA,PCjr,EGA
- = G 40x25 8x8 320x200 4 B800 MCGA,VGA
- 06h = G 80x25 8x8 640x200 2 B800 CGA,PCjr,EGA,MCGA,VGA
- 07h = T 80x25 9x14 mono var B000 MDA,Hercules,EGA
- = T 80x25 9x16 mono B000 VGA
- 0Bh = reserved (used internally by EGA BIOS)
- 0Ch = reserved (used internally by EGA BIOS)
- 0Dh = G 40x25 8x8 320x200 16 8 A000 EGA,VGA
- 0Eh = G 80x25 8x8 640x200 16 4 A000 EGA,VGA
- 0Fh = G 80x25 8x14 640x350 mono 2 A000 EGA,VGA
- 10h = G 80x25 8x14 640x350 4 2 A000 64k EGA
- = G 640x350 16 A000 256k EGA,VGA
- 11h = G 80x30 8x16 640x480 mono A000 VGA,MCGA,ATI EGA,ATI VIP
- 12h = G 80x30 8x16 640x480 16/256k A000 VGA,ATI VIP
- = G 80x30 8x16 640x480 16/64 A000 ATI EGA Wonder
- 13h = G 40x25 8x8 320x200 256/256k A000 VGA,MCGA,ATI VIP
- ----------1001-------------------------------
- INT 10 - VIDEO - SET TEXT-MODE CURSOR SHAPE
- AH = 01h
- CH = bit 7 should be zero
- bits 6,5 cursor blink
- (00=normal, 01=invisible, 10=erratic, 11=slow)
- (00=normal, other=invisible on EGA/VGA)
- bits 4-0 top scan line containing cursor
- CL = bottom scan line containing cursor (bits 0-4)
- Notes: buggy on EGA systems--BIOS remaps cursor shape in 43 line modes, but
- returns unmapped cursor shape
- applications which wish to change the cursor by programming the
- hardware directly on EGA or above should call INT 10/AX=1130h or
- read 0040h:0085h first to determine the current font height
- BUG: AMI 386 BIOS and AST Premier 386 BIOS will lock up the system if AL
- is not equal to the current video mode
- SeeAlso: AH=03h,AX=CD05h
- ----------1002-------------------------------
- INT 10 - VIDEO - SET CURSOR POSITION
- AH = 02h
- BH = page number
- 0-3 in modes 2&3
- 0-7 in modes 0&1
- 0 in graphics modes
- DH = row (00h is top)
- DL = column (00h is left)
- SeeAlso: AH=03h,AH=05h
- ----------1003-------------------------------
- INT 10 - VIDEO - GET CURSOR POSITION AND SIZE
- AH = 03h
- BH = page number
- 0-3 in modes 2&3
- 0-7 in modes 0&1
- 0 in graphics modes
- Return: AX = 0000h (Phoenix BIOS)
- CH = start scan line
- CL = end scan line
- DH = row (00h is top)
- DL = column (00h is left)
- Notes: a separate cursor is maintained for each of up to 8 display pages
- many ROM BIOSes incorrectly return the default size for a color display
- (start 06h, end 07h) when a monochrome display is attached
- SeeAlso: AH=01h,AH=02h
- ----------1004-------------------------------
- INT 10 - VIDEO - READ LIGHT PEN POSITION (EGA Only)
- AH = 04h
- Return: AH = light pen trigger flag
- 00h not down/triggered
- 01h down/triggered
- DH,DL = row,column of character light pen is on
- CH = pixel row (graphics modes 04h-06h)
- CX = pixel row (graphics modes with >200 rows)
- BX = pixel column
- Notes: on a CGA, returned column numbers are always multiples of 2 (320-
- column modes) or 4 (640-column modes)
- returned row numbers are only accurate to two lines
- ----------1005-------------------------------
- INT 10 - VIDEO - SELECT ACTIVE DISPLAY PAGE
- AH = 05h
- AL = new page number (00h to number of pages - 1) (see AH=00h)
- SeeAlso: AH=0Fh
- ----------1006-------------------------------
- INT 10 - VIDEO - SCROLL UP WINDOW
- AH = 06h
- AL = number of lines by which to scroll up (00h = clear entire window)
- BH = attribute used to write blank lines at bottom of window
- CH,CL = row,column of window's upper left corner
- DH,DL = row,column of window's lower right corner
- Note: affects only the currently active page (see AH=05h)
- Warning: some implementations have a bug which destroys BP
- SeeAlso: AH=07h,AH=72h,AH=73h
- ----------1007-------------------------------
- INT 10 - VIDEO - SCROLL DOWN WINDOW
- AH = 07h
- AL = number of lines by which to scroll down (00h=clear entire window)
- BH = attribute used to write blank lines at top of window
- CH,CL = row,column of window's upper left corner
- DH,DL = row,column of window's lower right corner
- Note: affects only the currently active page (see AH=05h)
- Warning: some implementations have a bug which destroys BP
- SeeAlso: AH=06h,AH=72h,AH=73h
- ----------1008-------------------------------
- INT 10 - VIDEO - READ CHARACTER AND ATTRIBUTE AT CURSOR POSITION
- AH = 08h
- BH = page number (00h to number of pages - 1) (see AH=00h)
- Return: AH = attribute
- bit 7: blink
- bits 6-4: background color
- 000 black
- 001 blue
- 010 green
- 011 cyan
- 100 red
- 101 magenta
- 110 brown
- 111 white
- bits 3-0: foreground color
- 0000 black 1000 dark gray
- 0001 blue 1001 light blue
- 0010 green 1010 light green
- 0011 cyan 1011 light cyan
- 0100 red 1100 light red
- 0101 magenta 1101 light magenta
- 0110 brown 1110 yellow
- 0111 light gray 1111 white
- AL = character
- Notes: for monochrome displays, a foreground of 1 with background 0 is underlined
- the blink bit may be reprogrammed to enable intense background colors
- using AX=1003h or by programming the CRT controller
- SeeAlso: AH=09h,AX=1003h
- ----------1009-------------------------------
- INT 10 - VIDEO - WRITE CHARACTER AND ATTRIBUTE AT CURSOR POSITION
- AH = 09h
- AL = character to display
- BH = page number (00h to number of pages - 1) (see AH=00h)
- BL = attribute (text mode) or color (graphics mode)
- if bit 7 set in graphics mode, character is xor'ed onto screen
- CX = number of times to write character
- Notes: all characters are displayed, including CR, LF, and BS
- replication count in CX may produce an unpredictable result in graphics
- modes if it is greater than the number of positions remaining in the
- current row
- SeeAlso: AH=08h,AH=0Ah,AH=4Bh,INT 17/AH=60h,INT 1F,INT 43,INT 44
- ----------100A-------------------------------
- INT 10 - VIDEO - WRITE CHARACTER ONLY AT CURSOR POSITION
- AH = 0Ah
- AL = character to display
- BH = page number (00h to number of pages - 1) (see AH=00h)
- BL = attribute (PCjr only) or color (graphics mode)
- if bit 7 set in graphics mode, character is xor'ed onto screen
- CX = number of times to write character
- Notes: all characters are displayed, including CR, LF, and BS
- replication count in CX may produce an unpredictable result in graphics
- modes if it is greater than the number of positions remaining in the
- current row
- SeeAlso: AH=08h,AH=09h,AH=4Bh,INT 17/AH=60h,INT 1F,INT 43,INT 44
- ----------100B--BH00-------------------------
- INT 10 - VIDEO - SET BACKGROUND/BORDER COLOR
- AH = 0Bh
- BH = 00h
- BL = background/border color (border only in text modes)
- SeeAlso: AH=0Bh/BH=01h
- ----------100B--BH01-------------------------
- INT 10 - VIDEO - SET PALETTE
- AH = 0BH
- BH = 01h
- BL = palette ID
- 00h background, green, red, and brown/yellow
- 01h background, cyan, magenta, and white
- SeeAlso: AH=0Bh/BH=00h
- ----------100C-------------------------------
- INT 10 - VIDEO - WRITE GRAPHICS PIXEL
- AH = 0Ch
- BH = page number
- AL = pixel color (if bit 7 set, value is xor'ed onto screen)
- CX = column
- DX = row
- Notes: valid only in graphics modes
- BH is ignored if the current video mode supports only one page
- SeeAlso: AH=0Dh,AH=46h
- ----------100D-------------------------------
- INT 10 - VIDEO - READ GRAPHICS PIXEL
- AH = 0Dh
- BH = page number
- CX = column
- DX = row
- Return: AL = pixel color
- Notes: valid only in graphics modes
- BH is ignored if the current video mode supports only one page
- SeeAlso: AH=0Ch,AH=47h
- ----------100E-------------------------------
- INT 10 - VIDEO - TELETYPE OUTPUT
- AH = 0Eh
- AL = character to write
- BH = page number
- BL = foreground color (graphics modes only)
- Notes: characters 07h (BEL), 08h (BS), 0Ah (LF), and 0Dh (CR) are interpreted
- and do the expected things
- IBM PC ROMs dated 4/24/81 and 10/19/81 require that BH be the same as
- the current active page
- SeeAlso: AH=02h,AH=0Ah
- ----------100F-------------------------------
- INT 10 - VIDEO - GET CURRENT VIDEO MODE
- AH = 0Fh
- Return: AH = number of character columns
- AL = display mode (see AH=00h)
- BH = active page (see AH=05h)
- Notes: if mode was set with bit 7 set ("no blanking"), the returned mode will
- also have bit 7 set
- EGA, VGA, and UltraVision return either AL=03h (color) or AL=07h
- (monochrome) in all extended-row text modes
- SeeAlso: AH=00h,AH=05h,AX=1130h,AX=CD04h
- ----------101000----------------------------
- INT 10 - VIDEO - SET SINGLE PALETTE REGISTER (PCjr,EGA,MCGA,VGA)
- AX = 1000h
- BL = palette register number (00h-0Fh)
- = attribute register number (undocumented)
- 10h attribute mode control register (should let BIOS control this)
- 11h overscan color register (see also AX=1001h)
- 12h color plane enable register (bits 3-0 enable corresponding
- text attribute bit)
- 13h horizontal PEL panning register
- 14h color select register
- BH = color or attribute register value
- Notes: on MCGA, only BX = 0712h is supported
- under UltraVision, the palette locking status (see AX=CD01h)
- determines the outcome
- SeeAlso: AX=1002h,AX=1007h,AX=CD01h
- ----------101001-----------------------------
- INT 10 - VIDEO - SET BORDER (OVERSCAN) COLOR (PCjr,EGA,VGA)
- AX = 1001h
- BH = border color (00h-3Fh)
- BUG: the original IBM VGA BIOS incorrectly updates the parameter save area
- and places the border color at offset 11h of the palette table
- rather than offset 10h
- Note: under UltraVision, the palette locking status (see AX=CD01h)
- determines the outcome
- SeeAlso: AX=1002h,AX=1008h,AX=CD01h
- ----------101002-----------------------------
- INT 10 - VIDEO - SET ALL PALETTE REGISTERS (PCjr,EGA,VGA)
- AX = 1002h
- ES:DX -> palette register list
- Note: under UltraVision, the palette locking status (see AX=CD01h)
- determines the outcome
- SeeAlso: AX=1000h,AX=1001h,AX=1009h,AX=CD01h
-
- Format of palette register list:
- Offset Size Description
- 00h 16 BYTEs colors for palette registers 00h through 0Fh
- 10h BYTE border color
- ----------101003-----------------------------
- INT 10 - VIDEO - TOGGLE INTENSITY/BLINKING BIT (Jr, PS, TANDY 1000, EGA, VGA)
- AX = 1003h
- BL = new state
- 00h background intensity enabled
- 01h blink enabled
- Note: although there is no function to get the current status, bit 5 of
- 0040h:0065h indicates the state
- SeeAlso: AH=08h
- ----------101007-----------------------------
- INT 10 - VIDEO - GET INDIVIDUAL PALETTE REGISTER (VGA,UltraVision v2+)
- AX = 1007h
- BL = palette or attribute (undoc) register number (see AX=1000h)
- Return: BH = palette or attribute register value
- Notes: UltraVision v2+ supports this function even on color EGA systems in
- video modes 00h-03h, 10h, and 12h; direct programming of the palette
- registers will cause incorrect results because the EGA registers are
- write-only. To guard against older versions or unsupported video
- modes, programs which expect to use this function on EGA systems
- should set BH to FFh on entry.
- SeeAlso: AX=1000h,AX=1009h
- ----------101008-----------------------------
- INT 10 - VIDEO - READ OVERSCAN (BORDER COLOR) REGISTER (VGA,UltraVision v2+)
- AX = 1008h
- Return: BH = border color (00h-3Fh)
- Notes: UltraVision v2+ supports this function even on color EGA systems in
- video modes 00h-03h, 10h, and 12h; direct programming of the palette
- registers will cause incorrect results because the EGA registers are
- write-only. To guard against older versions or unsupported video
- modes, programs which expect to use this function on EGA systems
- should set BH to FFh on entry.
- SeeAlso: AX=1001h
- ----------101009-----------------------------
- INT 10 - VIDEO - READ ALL PALETTE REGISTERS AND OVERSCAN REGISTER (VGA)
- AX = 1009h
- ES:DX -> 17-byte buffer (see AX=1002h)
- Notes: UltraVision v2+ supports this function even on color EGA systems in
- video modes 00h-03h, 10h, and 12h; direct programming of the palette
- registers will cause incorrect results because the EGA registers are
- write-only. To guard against older versions or unsupported video
- modes, programs which expect to use this function on EGA systems
- should set the ES:DX buffer to FFh before calling.
- SeeAlso: AX=1002h,AX=1007h,AX=CD02h
- ----------101010-----------------------------
- INT 10 - VIDEO - SET INDIVIDUAL DAC REGISTER (VGA/MCGA)
- AX = 1010h
- BX = register number
- CH = new value for green (0-63)
- CL = new value for blue (0-63)
- DH = new value for red (0-63)
- SeeAlso: AX=1012h,AX=1015h
- ----------101012-----------------------------
- INT 10 - VIDEO - SET BLOCK OF DAC REGISTERS (VGA/MCGA)
- AX = 1012h
- BX = starting color register
- CX = number of registers to set
- ES:DX -> table of 3*CX bytes where each 3 byte group represents one
- byte each of red, green and blue (0-63)
- SeeAlso: AX=1010h,AX=1017h
- ----------101013-----------------------------
- INT 10 - VIDEO - SELECT VIDEO DAC COLOR PAGE (VGA)
- AX = 1013h
- BL = subfunction
- 00h select paging mode
- BH = 00h select 4 blocks of 64
- BH = 01h select 16 blocks of 16
- 01h select page
- BH = page number (00h to 03h) or (00h to 0Fh)
- Note: not valid in mode 13h
- SeeAlso: AX=101Ah
- ----------101015-----------------------------
- INT 10 - VIDEO - READ INDIVIDUAL DAC REGISTER (VGA/MCGA)
- AX = 1015h
- BL = palette register number
- Return: DH = red value
- CH = green value
- CL = blue value
- SeeAlso: AX=1010h,AX=1017h
- ----------101017-----------------------------
- INT 10 - VIDEO - READ BLOCK OF DAC REGISTERS (VGA/MCGA)
- AX = 1017h
- BX = starting palette register
- CX = number of palette registers to read
- ES:DX -> buffer (3 * CX bytes in size) (see also AX=1012h)
- Return: buffer filled with CX red, green and blue triples
- SeeAlso: AX=1012h,AX=1015h
- ----------101018-----------------------------
- INT 10 - VIDEO - undocumented - SET PEL MASK (VGA/MCGA)
- AX = 1018h
- BL = new PEL value
- SeeAlso: AX=1019h
- ----------101019-----------------------------
- INT 10 - VIDEO - undocumented - READ PEL MASK (VGA/MCGA)
- AX = 1019h
- Return: BL = value read
- SeeAlso: AX=1018h
- ----------10101A-----------------------------
- INT 10 - VIDEO - GET VIDEO DAC COLOR-PAGE STATE (VGA)
- AX = 101Ah
- Return: BL = paging mode
- 00h four pages of 64
- 01h sixteen pages of 16
- BH = current page
- SeeAlso: AX=1013h
- ----------10101B-----------------------------
- INT 10 - VIDEO - PERFORM GRAY-SCALE SUMMING (VGA/MCGA)
- AX = 101Bh
- BX = starting palette register
- CX = number of registers to convert
- SeeAlso: AH=12h/BL=33h
- ----------1011-------------------------------
- INT 10 - VIDEO - TEXT-MODE CHARACTER GENERATOR FUNCTIONS (PS, EGA, VGA)
- AH = 11h
- The following functions will cause a mode set, completely resetting
- the video environment, but without clearing the video buffer
- AL = 00h, 10h: load user-specified patterns
- ES:BP -> user table
- CX = count of patterns to store
- DX = character offset into map 2 block
- BL = block to load in map 2
- BH = number of bytes per character pattern
- AL = 01h, 11h: load ROM monochrome patterns (8 by 14)
- BL = block to load
- AL = 02h, 12h: load ROM 8 by 8 double-dot patterns
- BL = block to load
- AL = 03h: set block specifier
- BL = block specifier
- (EGA/MCGA) bits 0,1 = block selected by chars with attribute bit 3=0
- bits 2,3 = block selected by chars with attribute bit 3=1
- (VGA) bits 0,1,4 = block selected by attribute bit 3 = 0
- bits 2,3,5 = block selected by attribute bit 3 = 1
- AL = 04h, 14h: load ROM 8x16 character set (VGA)
- BL = block to load
- The routines called with AL=1xh are designed to be called only
- immediately after a mode set and are similar to the routines called
- with AL=0xh, except that:
- Page 0 must be active.
- Bytes/character is recalculated.
- Max character rows is recalculated.
- CRT buffer length is recalculated.
- CRTC registers are reprogrammed as follows:
- R09 = bytes/char-1 ; max scan line (mode 7 only)
- R0A = bytes/char-2 ; cursor start
- R0B = 0 ; cursor end
- R12 = ((rows+1)*(bytes/char))-1 ; vertical display end
- R14 = bytes/char ; underline loc
- (*** BUG: should be 1 less ***)
- SeeAlso: AX=CD10h
- ----------1011-------------------------------
- INT 10 - VIDEO - GRAPHICS-MODE CHARACTER GENERATOR FUNCTIONS (PS, EGA, VGA)
- AH = 11h
- AL = 20h: set user 8 by 8 graphics characters (INT 1F)
- ES:BP -> user table
- AL = 21h: set user graphics characters
- ES:BP -> user table
- CX = bytes per character
- BL = row specifier
- 00h user set
- DL = number of rows
- 01h 14 rows
- 02h 25 rows
- 03h 43 rows
- AL = 22h: ROM 8 by 14 set
- BL = row specifier (see above)
- AL = 23h: ROM 8 by 8 double dot
- BL = row specifier (see above)
- AL = 24h: load 8x16 graphics characters (VGA/MCGA)
- BL = row specifier (see above)
- AL = 29h: load 8x16 graphics characters (Compaq Systempro)
- BL = row specifier (see above)
- Notes: these functions are meant to be called only after a mode set
- UltraVision v2+ sets INT 43 to the appropriate font for AL=22h,23h,24h,
- and 29h
- SeeAlso: INT 1F, INT 43
- ----------101130-----------------------------
- INT 10 - VIDEO - GET FONT INFORMATION (EGA, MCGA, VGA)
- AX = 1130h
- BH = pointer specifier
- 00h INT 1Fh pointer
- 01h INT 43h pointer
- 02h ROM 8x14 character font pointer
- 03h ROM 8x8 double dot font pointer
- 04h ROM 8x8 double dot font (high 128 characters)
- 05h ROM alpha alternate (9 by 14) pointer (EGA,VGA)
- 06h ROM 8x16 font (MCGA, VGA)
- 07h ROM alternate 9x16 font (VGA only)
- 11h (UltraVision v2+) 8x20 font (VGA) or 8x19 font (autosync EGA)
- 12h (UltraVision v2+) 8x10 font (VGA) or 8x11 font (autosync EGA)
- Return: ES:BP = specified pointer
- CX = bytes/character
- DL = character rows on screen - 1
- Note: for UltraVision v2+, the 9xN alternate fonts follow the corresponding
- 8xN font at ES:BP+256N
- SeeAlso: AX=1100h,AX=1120h,INT 1F,INT 43
- ----------1012--BL10-------------------------
- INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS, EGA, VGA, MCGA) - GET EGA INFO
- AH = 12h
- BL = 10h
- Return: BH = 00h color mode in effect (I/O port 3Dxh)
- 01h mono mode in effect (I/O port 3Bxh)
- BL = 00h 64k bytes memory installed
- 01h 128k bytes memory installed
- 02h 192k bytes memory installed
- 03h 256k bytes memory installed
- CH = feature bits
- CL = switch settings
- ----------1012--BL20-------------------------
- INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS,EGA,VGA,MCGA) - ALTERNATE PRTSC
- AH = 12h
- BL = 20h select alternate print screen routine
- Notes: installs a PrtSc routine from the video card's BIOS to replace the
- default PrtSc handler from the ROM BIOS, which usually does not
- understand screen heights other than 25 lines
- some adapters disable print-screen instead of enhancing it
- SeeAlso: INT 05
- ----------1012--BL30-------------------------
- INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA) - SELECT VERTICAL RESOLUTION
- AH = 12h
- BL = 30h
- AL = vertical resolution
- 00h 200 scan lines
- 01h 350 scan lines
- 02h 400 scan lines
- Return: AL = 12h if function supported
- ----------1012--BL31-------------------------
- INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - PALETTE LOADING
- AH = 12h
- BL = 31h
- AL = 00h enable default palette loading
- 01h disable default palette loading
- Return: AL = 12h if function supported
- ----------1012--BL32-------------------------
- INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - VIDEO ADDRESSING
- AH = 12h
- BL = 32h
- AL = 00h enable video addressing
- 01h disable video addressing
- Return: AL = 12h if function supported
- ----------1012--BL33-------------------------
- INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - GRAY-SCALE SUMMING
- AH = 12h
- BL = 33h
- AL = 00h enable gray scale summing
- 01h disable gray scale summing
- Return: AL = 12h if function supported
- SeeAlso: AX=101Bh,AX=BF06h
- ----------1012--BL34-------------------------
- INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA) - CURSOR EMULATION
- AH = 12h
- BL = 34h
- AL = 00h enable alphanumeric cursor emulation
- 01h disable alphanumeric cursor emulation
- Return: AL = 12h if function supported
- ----------1012--BL35-------------------------
- INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS) - DISPLAY-SWITCH INTERFACE
- AH = 12h
- BL = 35h
- AL = 00h initial adapter video off
- 01h initial planar video on
- 02h switch active video off
- 03h switch inactive video on
- 80h *UNDOCUMENTED* set system board video active flag
- ES:DX -> buffer (128 byte save area if AL = 0, 2 or 3)
- Return: AL = 12h if function supported
- ----------1012--BL36-------------------------
- INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS, VGA) - VIDEO REFRESH CONTROL
- AH = 12h
- BL = 36h
- AL = 00h enable refresh
- 01h disable refresh
- Return: AL = 12h if function supported
- ----------1013-------------------------------
- INT 10 - VIDEO - WRITE STRING (AT and later,EGA)
- AH = 13h
- AL = write mode
- bit 0: update cursor after writing
- 1: string contains alternating characters and attributes
- BH = page number
- BL = attribute if string contains only characters
- CX = number of characters in string
- DH,DL = row,column at which to start writing
- ES:BP -> string to write
- Notes: recognizes CR, LF, BS, and bell
- also available PC or XT with EGA or higher
- HP 95LX only supports write mode 00h
- BUG: on the IBM VGA Adapter, any scrolling which may occur is performed on
- the active page rather than the requested page
- SeeAlso: AH=09h,AH=0Ah
- ----------101A-------------------------------
- INT 10 - VIDEO - DISPLAY COMBINATION (PS,VGA/MCGA)
- AH = 1Ah
- AL = 00h read display combination code
- Return: BL = active display code (see below)
- BH = alternate display code
- 01h set display combination code
- BL = active display code (see below)
- BH = alternate display code
- Return: AL = 1Ah if function was supported
-
- Values for display combination code:
- 00h no display
- 01h monochrome adapter w/ monochrome display
- 02h CGA w/ color display
- 03h reserved
- 04h EGA w/ color display
- 05h EGA w/ monochrome display
- 06h PGA w/ color display
- 07h VGA w/ monochrome analog display
- 08h VGA w/ color analog display
- 09h reserved
- 0Ah MCGA w/ digital color display
- 0Bh MCGA w/ monochrome analog display
- 0Ch MCGA w/ color analog display
- FFh unknown display type
- ----------101B-------------------------------
- INT 10 - VIDEO - FUNCTIONALITY/STATE INFORMATION (PS,VGA/MCGA)
- AH = 1Bh
- BX = implementation type
- 0000h return functionality/state information
- ES:DI -> 64 byte buffer for state information (see below)
- Return: AL = 1Bh if function supported
- ES:DI buffer filled with state information
- SeeAlso: AH=15h
-
- Format of state information:
- Offset Size Description
- 00h DWORD address of static functionality table (see below)
- 04h BYTE video mode in effect
- 05h WORD number of columns
- 07h WORD length of regen buffer in bytes
- 09h WORD starting address of regen buffer
- 0Bh WORD cursor position for page 0
- 0Dh WORD cursor position for page 1
- 0Fh WORD cursor position for page 2
- 11h WORD cursor position for page 3
- 13h WORD cursor position for page 4
- 15h WORD cursor position for page 5
- 17h WORD cursor position for page 6
- 19h WORD cursor position for page 7
- 1Bh WORD cursor type
- 1Dh BYTE active display page
- 1Eh WORD CRTC port address
- 20h BYTE current setting of register (3?8)
- 21h BYTE current setting of register (3?9)
- 22h BYTE number of rows
- 23h WORD bytes/character
- 25h BYTE display combination code of active display
- 26h BYTE DCC of alternate display
- 27h WORD number of colors supported in current mode
- 29h BYTE number of pages supported in current mode
- 2Ah BYTE number of scan lines active
- (0,1,2,3) = (200,350,400,480)
- 2Bh BYTE primary character block
- 2Ch BYTE secondary character block
- 2Dh BYTE miscellaneous flags
- bit 0 all modes on all displays on
- 1 gray summing on
- 2 monochrome display attached
- 3 default palette loading disabled
- 4 cursor emulation enabled
- 5 0 = intensity; 1 = blinking
- 6 PS/2 P70 plasma display (without 9-dot wide font) active
- 7 reserved
- 2Eh 3 BYTEs reserved (00h)
- 31h BYTE video memory available
- 00h = 64K, 01h = 128K, 02h = 192K, 03h = 256K
- 32h BYTE save pointer state flags
- bit 0 512 character set active
- 1 dynamic save area present
- 2 alpha font override active
- 3 graphics font override active
- 4 palette override active
- 5 DCC override active
- 6 reserved
- 7 reserved
- 33h 13 BYTEs reserved (00h)
-
- Format of Static Functionality Table:
- Offset Size Description
- 00h BYTE modes supported #1
- bit 0 to bit 7 = 1 modes 0,1,2,3,4,5,6 supported
- 01h BYTE modes supported #2
- bit 0 to bit 7 = 1 modes 8,9,0Ah,0Bh,0Ch,0Dh,0Eh,0Fh supported
- 02h BYTE modes supported #3
- bit 0 to bit 3 = 1 modes 10h,11h,12h,13h supported
- bit 4 to bit 7 reserved
- 03h 4 BYTEs reserved
- 07h BYTE scan lines supported
- bit 0 to bit 2 = 1 if scan lines 200,350,400 supported
- 08h BYTE total number of character blocks available in text modes
- 09h BYTE maximum number of active character blocks in text modes
- 0Ah BYTE miscellaneous function flags #1
- bit 0 all modes on all displays function supported
- 1 gray summing function supported
- 2 character font loading function supported
- 3 default palette loading enable/disable supported
- 4 cursor emulation function supported
- 5 EGA palette present
- 6 color palette present
- 7 color paging function supported
- 0Bh BYTE miscellaneous function flags #2
- bit 0 light pen supported
- 1 save/restore state function 1Ch supported
- 2 intensity blinking function supported
- 3 Display Combination Code supported
- 4-7 reserved
- 0Ch WORD reserved
- 0Eh BYTE save pointer function flags
- bit 0 512 character set supported
- 1 dynamic save area supported
- 2 alpha font override supported
- 3 graphics font override supported
- 4 palette override supported
- 5 DCC extension supported
- 6 reserved
- 7 reserved
- 0Fh BYTE reserved
- ----------101C-------------------------------
- INT 10 - VIDEO - SAVE/RESTORE VIDEO STATE (PS50+,VGA)
- AH = 1Ch
- AL = 00h return state buffer size
- Return: BX = number of 64-byte blocks needed
- 01h save video state
- ES:BX -> buffer
- 02h restore video state
- ES:BX -> buffer containing previously saved state
- CX = requested states
- bit 0 video hardware
- 1 BIOS data areas
- 2 color registers and DAC state
- 3-15 reserved
- Return: AL = 1Ch if function supported
-